package main

import "fmt"

func test() {
	fmt.Println("invoke method test....")
}

type tt func()

func testPointer(tet tt) {
	tet()
}

func main() {
	var a int = 0xa
	fmt.Printf("变量地址：0x%x\n", &a)

	fmt.Println("----------------------------------------")
	var ptr *int
	ptr = &a
	fmt.Printf("ptr 的值为 : 0x%x\n", ptr)
	fmt.Printf("*ptr 的值为 : 0x%x\n", *ptr)

	var pptr **int
	pptr = &ptr
	fmt.Printf("*pptr 的值为 : 0x%x\n", *pptr)
	fmt.Printf("**pptr 的值为 : 0x%x\n", **pptr)

	fmt.Println("----------------------------------------")

	ptr = &a
	fmt.Printf("ptr 的值为 : %d\n", *ptr)

	testPointer(test)

	var p2 *int
	fmt.Println(p2)

}
